/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.ufps.cuatro.util.editor;

import com.ufps.cuatro.controlador.render.UtilRender;
import com.ufps.cuatro.modelo.representacion.componente.Componente;
import com.ufps.cuatro.modelo.representacion.componente.ComponenteDistribuidor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import java.util.ArrayList;
import javax.swing.JComboBox;
import javax.swing.JTable;
import javax.swing.table.TableModel;

/**
 *
 * @author Catc
 */
public class MyComboBoxWizardComponenteIntegradorEditor extends JComboBox implements ActionListener{
    private static final long serialVersionUID = -4955706161623854269L;
    
    private ComponenteDistribuidor objComponenteDistribuidor;
    private ArrayList<Componente> objComponenteDistribuidos; 
    private int row;    
    private JTable table;
    private TableModel objModel;
    
    /**
     *
     * @param items
     */
    public MyComboBoxWizardComponenteIntegradorEditor(Object[] items, ComponenteDistribuidor objComponenteDistribuidor, int row, JTable table) {
        super(items == null ? new Object[1] : items);
        if(table != null){
            this.row = row;
            this.table = table;
            this.objModel = table.getModel();
            this.objComponenteDistribuidor = objComponenteDistribuidor;
            this.objComponenteDistribuidos = objComponenteDistribuidor.getObjDistribuidorGrupalSeleccionado().getObjComponentesDistribuidos();
            this.addActionListener(MyComboBoxWizardComponenteIntegradorEditor.this);
        }else{
            UtilRender.printlnConsole("Table Nulo.", UtilRender.ACTION_NORMAL, false);            
        }
    }

    @Override
    public void actionPerformed(ActionEvent e) {
       if(e != null){
        ComponenteDistribuidor newItem = (ComponenteDistribuidor) this.getSelectedItem();
        ComponenteDistribuidor oldItem = (ComponenteDistribuidor) objComponenteDistribuidos.get(row);
        if(!oldItem.equals(newItem)){
            objModel.setValueAt(newItem, row, 1);
            objComponenteDistribuidos.set(row, newItem);
            UtilRender.printlnConsole("Cambio de Componente: " + oldItem.getName() + " por " + newItem.getName(), UtilRender.ACTION_NORMAL, true);
            table.setModel(null);            
            table.setModel(objModel);
        }
    }else{
            UtilRender.printlnConsole("ActionEvent Nulo.", UtilRender.ACTION_NORMAL, false);            
        }
    }
}
